El operador de la nave espacial, también conocido como operador de comparación combinada, fue introducido en PHP 7. Este operador se escribe como `<=>` y se utiliza para comparar dos expresiones. La principal característica del operador de la nave espacial es que devuelve un valor entero dependiendo de la relación entre las dos expresiones que compara:
- Si el valor de la primera expresión es menor que el de la segunda, devuelve 1. Si ambos valores son iguales, devuelve 0.
- Si el valor de la primera expresión es mayor que el de la segunda, devuelve 1.
```php
$a <=> $b
```
- `$a < $b` devuelve `-1`
- `$a == $b` devuelve `0`
- `$a > $b` devuelve `1`
```php
echo 1 <=> 2; // Salida: -1, porque 1 es menor que 2
echo 2 <=> 2; // Salida: 0, porque 2 es igual a 2
echo 3 <=> 2; // Salida: 1, porque 3 es mayor que 2
```
```php
echo 1.5 <=> 2.5; // Salida: -1, porque 1.5 es menor que 2.5
echo 2.5 <=> 2.5; // Salida: 0, porque 2.5 es igual a 2.5
echo 3.5 <=> 2.5; // Salida: 1, porque 3.5 es mayor que 2.5
```
```php
echo “a” <=> “b”; // Salida: -1, porque “a” es menor que “b” en comparación lexicográfica
echo “b” <=> “b”; // Salida: 0, porque “b” es igual a “b“
echo “c” <=> “b”; // Salida: 1, porque “c” es mayor que “b“
```
El operador de la nave espacial es particularmente útil en la construcción de funciones de comparación para ordenar arrays. Por ejemplo, podemos usar `<=>` en una función de comparación personalizada para `usort`:
```php
$array = [2, 5, 3, 1, 4];
usort($array, function($a, $b) {
return $a <=> $b;
});
print_r($array); // Salida: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
```
En este ejemplo, la función de comparación anónima devuelve el resultado de `$a <=> $b`, lo que permite que `usort` ordene el array en orden ascendente.
La información detallada sobre el operador de la nave espacial se puede encontrar en la [documentación oficial de PHP](https://www.php.net/manual/es/migration70.new-features.php) y en la [página del operador de comparación](https://www.php.net/manual/es/language.operators.comparison.php).
Para profundizar más en el uso en ordenación de arrays, puedes consultar la [documentación de `usort`](https://www.php.net/manual/es/function.usort.php).
Estos recursos proporcionan una visión completa sobre cómo y cuándo usar el operador de la nave espacial en diferentes contextos de programación en PHP.